/*
 * Alloy Analyzer Copyright (c) 2002 Massachusetts Institute of Technology
 * 
 * The Alloy Analyzer is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the Free
 * Software Foundation; either version 2 of the License, or (at your option) any
 * later version.
 * 
 * The Alloy Analyzer is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * the Alloy Analyzer; if not, write to the Free Software Foundation, Inc., 59
 * Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */

package alloy.ast;

public class Quantifier extends Op {

    /**
     * different quantifiers
     */
    public static final Quantifier ALL  = new Quantifier("all");
    public static final Quantifier NO   = new Quantifier("no");
    public static final Quantifier SOME = new Quantifier("some");
    public static final Quantifier LONE = new Quantifier("lone");
    public static final Quantifier ONE  = new Quantifier("one");

    private Quantifier(String opString_) {
        super(opString_, false); // no quantifiers are commutative
    }

    /**
     * accept an AST visitor
     * 
     * @param visitor_ the visitor
     */
    protected void acceptVisitor(ASTVisitor visitor_) {
        visitor_.visit(this);
    }

    /**
     * accept a returning AST visitor
     * 
     * @param visitor_ the visitor
     * @return the Object returned by the visitor
     */
    protected Object acceptReturnVisitor(ASTReturnVisitor visitor_) {
        return visitor_.visit(this);
    }

}
